package com.springsecurity.demo.handler;


import com.springsecurity.demo.common.Response;
import org.json.JSONObject;
import org.springframework.http.HttpStatus;
import org.springframework.security.core.AuthenticationException;
import org.springframework.security.web.AuthenticationEntryPoint;
import org.springframework.stereotype.Component;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@Component
public class AuthenticationEntryPointImpl implements AuthenticationEntryPoint {
    @Override
    public void commence(HttpServletRequest request, HttpServletResponse response, AuthenticationException authException) throws IOException, ServletException {
//        ResponseResult result = new ResponseResult(HttpStatus.UNAUTHORIZED.value(),"用户认证失败请查询登录");
//        String json = JSON.toJSONString(result);
//        //处理异常
//        WebUtils.renderString(response,json);
//        System.out.println("用户认证失败请查询登录");
        response.setContentType("application/json;charset=UTF-8");
        response.setStatus(HttpServletResponse.SC_UNAUTHORIZED); // 设置状态码为403
        JSONObject jsonResponse = new JSONObject();
        jsonResponse.put("code", 401);
        jsonResponse.put("message", "the token is invalid2222");
        jsonResponse.put("data", false);
        response.getWriter().write(jsonResponse.toString());
//        Response result = new Response(HttpStatus.UNAUTHORIZED.value(),
//                "the token is invalid", null);

    }
}

